    /**
	   数字信封
     简介:
       这里的数字信封指的是EnvelopedData，是加密消息语法的一种，其主要是先使用对称密钥加密数据，
       然后使用接收者的公钥来加密对称密钥，并把这些信息组合在一起
    **/
     /*
        数字信封加密
     */
	function JSTest_EnvelopedData_Encrypt()
	{
		 
		    /*
		    localCacheICert 是一个certificate的javascript对象
		    */

			if(localCacheICert==null)
			{
				alert("先选择加密的证书");
				return;
			}
            

            /*数字信封加密 使用NetcaPKI的envelopedDataEncrypt方法，
            传入certificate和加密数据（可以是字节数组或者字符串,字符串会被解码成utf8字节数组）
	        */
			var  cipher= NetcaPKI.envelopedDataEncrypt(localCacheICert,EnvelopedDataEncryptClearText.value);    
			if(NetcaPKI.getLastError()!=NetcaPKI.OK)
            {
                alert(NetcaPKI.getLastErrorMsg());
				return;
            }  

            //返回是字节数组的加密数据
            //base64编码使用NetcaPKI 的base64Encode方法
			var  base64String= NetcaPKI.base64Encode(cipher);
		    EnvelopedDataEncryptPVAL.value=base64String;
	}
    
    /*
     数字信封解密
    */

	function JSTest_EnvelopedData_Decrypt()
	{
		   
		    /*
		    localCacheICert 是一个certificate的javascript对象
		    */
			if(localCacheICert==null)
			{
				alert("先选择解密的证书");
				return;
			}

			var  inString=NetcaPKI.base64Decode(EnvelopedDataDecryptCipher.value);

		   	/*
			数字信封解密 使用NetcaPKI的envelopedDataDecrypt方法，
            传入参数 加密数据 字节数组 
	        */

			var  clearText= NetcaPKI.envelopedDataDecrypt(inString);    
			if(NetcaPKI.getLastError()!=NetcaPKI.OK)
            {
                alert(NetcaPKI.getLastErrorMsg());
				return;
            }  
            

            //将明文字节数组(明文如果不是utf8编码，要使用其他编码方式)转换成字符串
			var  utf8String= NetcaPKI.newString(clearText);
		    EnvelopedDataDecryptClearText.value=utf8String;
	 
		
	}

    /*
       获取数字信封的解密证书
    */

	function JSTest_EnvelopedData_GetDecryptCert()
	{
			

			/*
			获取数字信封解密证书 使用NetcaPKI的envelopedDataGetDecryptCert方法，
	        */
            
	        var DecryCert=NetcaPKI.envelopedDataGetDecryptCert();
			if(NetcaPKI.getLastError()!=NetcaPKI.OK)
            {
                alert(NetcaPKI.getLastErrorMsg());
				return;
            }  

            //获取证书的base64编码
			var  Enccode= DecryCert.encode(NetcaPKI.CERT_ENCODE_BASE64_NO_NL);    
		    EnvelopedDataGetDecryptCertEncode.value=Enccode;

		    //显示证书
			DecryCert.display();
		
	}